package 事务操作;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class demo01 {
    public static void main(String[] args) {
     String url = "jdbc:mysql://localhost/db_jdbc_demo?jdbc:mysql://IP地址:3306/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
     String user = "root";
     String pass = "200233";
     Connection conn= null;
     Statement stmt = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(url,user,pass);
            String sql1 = "update t_account set money = money - 5000 where id = 1";
            String sql2 = "update t_account set money = money + 5000 where id = 2";
            //开启事务
            conn.setAutoCommit(false);
            stmt = conn.createStatement();
            int i= stmt.executeUpdate(sql1);
            int j = stmt.executeUpdate(sql2);
            if (i+j==2){
                System.out.println("转账成功");
                conn.commit();
            }else {
                System.out.println("转账失败");
            }
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("转账出现错误");
            try {
                conn.rollback();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }finally {
            try {
                stmt.close();
                conn.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        }
    }

